The present application relates to video-on-demand, and more particularly to video on demand in a peer-to-peer network.
With the popularity of broadband Internet access, there has been increasing interest in media streaming services. Video-on-demand (VoD) is one of such services where movies are delivered to desktops of distributed users with low delay and free interactivity (in terms of pause, jump forward/backward, etc.). However, providing VoD with a traditional client-server model, where each client has a dedicated stream from a VoD server, is not scalable to large number of clients. This is mainly due to heavy server load and limited network bandwidth at the server side. Despite many proposals on scalable media streaming using IP multicast, providing such services is still challenging due to the lack of widely deployed multicast-capable networks and dedicated proxy servers. Recently, peer-to-peer (P2P) technologies have provided scalable solutions to many applications, e.g., multicasting and file sharing among distributed users.
In P2P systems, cooperative peers self-organize themselves into overlay networks via unicast tunnels (note, the terms “client” and “peer” are used interchangeably herein). Each peer (called overlay node) in an overlay network acts as an application-layer proxy, caching and relaying data for other peers. In addition, by sharing their resources such as storage and network bandwidth, the capacity of the whole system is greatly increased as compared to traditional client-server architecture. Recent research shows that it is feasible to support large-scale media streaming in the Internet using P2P approach.
Though the P2P approach has been shown to be quite successful for on-demand media streaming, its support for user interactivity is still challenging due to the following reasons:                Request asynchrony—User requests come at different times, so different users are receiving different fragments (e.g. different time-stamped segments) of the media program. Therefore, simply multicasting the stream using ALM does not fulfill all the user requests.        Peer dynamics—Users in the system may join or leave at any time, or even suddenly fail. Hence, there is a need for an efficient mechanism which is resilient to dynamic peer-to-peer environment.        Unpredictable interactivity—Users may jump forward, backward, pause and resume the video at any time. This means that the parents (or “suppliers”) of a user may need to be changed quite frequently.        
Though P2P file swarming systems like BitTorrent may be used to download the whole media objects before playback, this introduces long startup delay for playback. Though there has been much work on providing on-demand video service in P2P networks (i.e., low startup delay), few tackle the important problem—user interactivity.
There have been many proposals on providing on-demand media streaming using IP multicast, such as patching, periodic broadcasting, stream merging, etc. Those works take advantage of the efficient data dissemination using IP multicast and repeat the media in multicast channels. Nevertheless, over the past decade, the deployment of IP multicast-capable networks has remained very limited.
Recently, live media streaming using P2P approach has been studied. Collaborating peers relay the received stream to others so as to make sure all users to receive the same stream before the playback deadline. Since users in those systems receive the same portion of the media simultaneously, any peer can become a parent of another peer. However, in a P2P MoD (media-on-demand) system, there is a temporal dependency among peers. This means that only peers with requested media in their buffers can become parents of the requesting peer. Therefore, it is more restrictive to find suitable parents in P2P MoD system. Also, there is no interactivity support provided in live media streaming.
Some P2P MoD systems have been proposed. Most of them organize peers into tree-based overlay structures. In a tree-based overlay, a peer receives a stream from its only parent. When its parent leaves the system or fails, the peer needs to find a new parent before the content in its buffer is used up. Otherwise, the peer and all its descendants cannot receive the required media before playback deadline and adversely affect the quality of the streaming media.
Peers in some work also receive streams from several parents. All parents are required to have the full copy of the requested media, which is rarely available in reality.
In other attempts, a hybrid approach is introduced. Upon a tree overlay, a gossip-based data exchange mechanism is added to withstand the unreliability of peers. However, all the parent-children relationships and gossip partners are assigned by a central server. Therefore, the central server needs to keep track of all the users. This centralized approach is not preferred in P2P systems, because a large amount of control traffic would congest the network near the central server. Based on the hybrid approach, a distributed gossip partnership management has been introduced. Though searching parents is achieved using a distributed AVL tree, the network locations of peers are not taken into consideration when assigning parent-children relationship and partnership. Bad assignment may lead to transmission of the stream to and from some bottleneck links many times. Also, transmission from distant parents may experience higher probability of packet loss.